package com.flyee.viewer.pack.helper
{
	[Bindable]
	[RemoteClass(alias="com.goldcitynet.flex.view.ItemView")]
	public class ItemDataModel
	{
		public static const TARGET_SELF:int = 0; //自己
    	public static const TARGET_USER:int = 1; //其他用户
   	 	public static const TARGET_FRIENDANDSELF:int = 2; //好友和自己
    	public static const TARGET_SENCE:int = 3; //整个场景
		public static const APPEARANCE_TYPE:int = 100;
		public static const CARD_TYPE:int = 101;
		public static const GAINED_COLLECT:int = 0; //拾取
    	public static const GAINED_PURCHASE:int = 1; //购买
    	public static const GAINED_PURCHASEABDCOLLECT:int = 2; //购买和拾取
		//绿色
		public static const COLOR_GREEN_INT:int = 0;
		//蓝色
		public static const COLOR_YELLOW_INT:int = 1;
		//紫色
		public static const COLOR_PURPLE_INT:int = 2;
		public static const STATUS_NORMAL:int = 0;//正常
    	public static const STATUS_PAUSE:int = 1;//停用
    	public static const STATUS_FORBIDDEN:int = 2;//禁用
    	public var result:Boolean = true;
    	public var message:String = "testing!!!!";
		/**
		 * 道具ID 
		 */		
		public var id:String = null;
		/**
		 * 道具名称
		 */
		public var name:String = null;
		/**
		 * 道具在包裹中的ID
		 */
		public var packageId:String = null;
		
		/**
		 * 道具描述信息
		 */
		public var description:String = null;
		/**
	     * 道具显示时候的tip，为html格式
	     */
	    public var tip:String;
	    
	    public var action:String = "init";
		/**
		 * 道具颜色 
		 */		
		 public var color:int = -1;
		 /**
	     * 持续时间，单位为秒
	     * buffer类的道具有持续时间的设置，表示道具能持续作用多少秒
	     */
	    public var duration:int;
	     /**
	     * 作用目标
	     * 不同道具作用目标不同，主要有"自己", "其他用户", "好友和自己", "整个场景", */
	    public var target:int;
	     /**
	     * 最大发行量
	     * 每个道具都有发行量限制，如果为0，发行量为无限多
	     */
	    public var circulationMax:int;
	    /**
	     * 当前已经发行的数量
	     */
	    public var circulation:int;
	    /**
	     * 获取方式
	     */
	    public var gained:int;
		/**
	     * 购买道具需消耗的金币
	     */
	    public var priceGoldCoin:int;
	    /**
	     * 购买道具需消耗的虚拟币
	     */
	    public var priceCityCoin:int
		/**
		 * 最小使用等级限制
		 */
		public var restrict:int = 0;
		/**
		 * 是否可交易
		 */
		public var exchangeFlag:Boolean = false;
		/**
		 * 图片的URL
		 */
		public var iconPath:String = "com/goldcitynet/platform/assets/header1.png";
		 /**
	     * 状态：正常，停用，删除
	     * 正常，后台可以正常管理，使用此道具
	     * 停用，此道具不再发行，管理
	     * 禁用，禁止用户使用此道具
	     */
	    public var status:int;
	
	    /**
	     * 道具实例的状态，从ItemInstance的status属性来
	     * 状态：正常，停用，删除
	     * 正常，后台可以正常管理，使用此道具
	     * 停用，此道具不再发行，管理
	     */
	    public var instanceStatus:int = 0;
	    /**
	     *  该道具属于系统还是属于自己的
	     */	    
	    public var isSystem:Boolean = true; 
		/**
		 * 道具在包裹里的最大堆叠数量 
		 */		
		public var capabilityMax:int = 1;
		/**
		 * 当前道具在包裹里的堆叠数量
		 */
		private var _capability:int = 0;
		/**
		 * 道具在包裹中的位置,该位置相对于包裹中面板
		 */
		private var _position:int = -1;
		/**
		 *  初始化时，该道具的数量
		 */		
		private var _initCapability:int = 0;
		/**
		 * 初始化时，该道具在包裹中的位置,是保存的从数据库取得的绝对位置 
		 */		
		private var _initPosition:int = 0;
		/**
		 * 最精确的道具类型， 
		 */		
		private var _itemType:int = 0;
		/**
		 * 客服端定义道具类型，判断是哪个大类道具
		 */
		private var _itemGenre:int = 0;
	
		/**
		 * 道具在客服端包裹中的哪个面板
		 */
		private var panelIndex:int = 0;

		public function ItemDataModel()
		{
		}
		
		/**
		 * 解析时单独设置道具类型 
		 * @param type
		 * 
		 */		
		public function set itemType(type:int):void{
			this._itemType = type;
			if (type < 2000)
			{
				_itemGenre = ItemDataModel.APPEARANCE_TYPE;
			}
			else if (type < 3000)
			{
				_itemGenre = ItemDataModel.CARD_TYPE;
			}
		}
		
		/**
		 * 重新设置道具的位置，相对于面板容器，给每个道具面板容器编号 
		 * @param tag
		 * 
		 */		
		public function set position(tag:int):void
		{
			var index:int = Math.floor(tag / PackageHelper.AVERAGE_COUNT);
			var res:int = tag % PackageHelper.AVERAGE_COUNT;
			this._position = res;
			this.panelIndex = index;
			this._initPosition = tag;
		}
		/**
		 * 在某个面板中的绝对位置 
		 * @param pos
		 * 
		 */		
		public function set currentPosistion(pos:int):void{
			_position = pos;
		}
		/**
		 * 初始化时该道具的数量 
		 * @param num
		 * 
		 */		
		public function set capability(num:int):void{
			_capability = num;
			_initCapability = num;
		}
		
		public function get itemType():int{
			return this._itemType;
		}
		
		public function get itemGenre():int{
			return _itemGenre;
		}
		
		public function set packPanelIndex(index:int):void{
			panelIndex = index;
		}
		
		public function get packPanelIndex():int{
			return panelIndex;
		}
		
		public function get initCapability():int{
			return _initCapability;
		}
		
		public function get initPosition():int{
			return _initPosition;
		}
		
		public function get currentPosistion():int{
			return _position;
		}
		
		public function get currentCapability():int{
			return _capability;
		}
		
		public function clear():void{
			
		}
	}
}



